g_object_unref (obj->impl);
obj->impl = NULL;
-
- if (obj->backing_for)
- g_object_unref (obj->backing_for);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
}
-/* Make GraphicsExposures and NoExposures and similar things report
- * events on this window. Make sure to ref the pixmap for each operation
- * that will result in a GraphicsExposure, because the core code will unref
- * if for each such event. This is so that the pixmap live long enought to
- * get the events on the window.
- */
-void
-_gdk_pixmap_set_as_backing (GdkPixmap *pixmap,
- GdkWindow *window,
- int x_offset,
- int y_offset)
-{
- GdkPixmapObject *private = (GdkPixmapObject *)pixmap;
-
- if (private->backing_for)
- g_object_unref (private->backing_for);
- private->backing_for = window;
- if (private->backing_for)
- g_object_ref (private->backing_for);
- private->backing_x_offset = x_offset;
- private->backing_y_offset = y_offset;
-
-}
-
static GdkGC *
gdk_pixmap_create_gc (GdkDrawable *drawable,
GdkGCValues *values,
GdkToplevelX11 *toplevel = NULL;
GdkDisplayX11 *display_x11 = GDK_DISPLAY_X11 (display);
Window xwindow, filter_xwindow;
- int exposure_x_offset = 0;
- int exposure_y_offset = 0;
- GdkWindow *unref_pixmap = NULL;
return_val = FALSE;
* are reported same as structure events
*/
get_real_window (display, xevent, &xwindow, &filter_xwindow);
-
- window = gdk_window_lookup_for_display (display, xwindow);
+ window = gdk_window_lookup_for_display (display, xwindow);
/* We may receive events such as NoExpose/GraphicsExpose
* and ShmCompletion for pixmaps
*/
if (window && !GDK_IS_WINDOW (window))
- {
- GdkPixmapObject *pixmap = (GdkPixmapObject *)window;
- if ((xevent->type == GraphicsExpose ||
- xevent->type == NoExpose) &&
- GDK_IS_PIXMAP (window) &&
- pixmap->backing_for != NULL)
- {
- /* Unref the pixmap once for each finished set of GraphicsExposes */
- if (xevent->type == NoExpose ||
- xevent->xgraphicsexpose.count == 0)
- unref_pixmap = window;
- window = g_object_ref (pixmap->backing_for);
- exposure_x_offset = pixmap->backing_x_offset;
- exposure_y_offset = pixmap->backing_y_offset;
- }
- else
- window = NULL;
- }
+ window = NULL;
window_private = (GdkWindowObject *) window;
/* We always run the filters for the window where the event
break;
}
- expose_rect.x = xevent->xgraphicsexpose.x + exposure_x_offset;
- expose_rect.y = xevent->xgraphicsexpose.y + exposure_y_offset;
+ expose_rect.x = xevent->xgraphicsexpose.x;
+ expose_rect.y = xevent->xgraphicsexpose.y;
expose_rect.width = xevent->xgraphicsexpose.width;
expose_rect.height = xevent->xgraphicsexpose.height;
if (window)
g_object_unref (window);
-
- if (unref_pixmap)
- g_object_unref (unref_pixmap);
return return_val;
}